iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
AI & Data

YOLO系列網路技術採用以及實作系列 第 25

[DAY 25] YOLOv7模型訓練

  • 分享至 

  • xImage
  •  

建立所需環境

  1. 下載yolov7程式碼
  2. 下載yolov7權重檔用於測試環境。
  3. 替yolov7創建一個新的Anaconda環境,並啟動該環境:
    conda create -n yolov7 python==3.8
    conda activate yolov7
    
  4. 進入到yolov7資料夾中,並安裝所需套件:
    pip install -r requirements.txt
    
  5. 利用下載好的權重檔,測試預測一張影像:
    python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference\images\horses.jpg
    
    • 檢測出來的影像會存在runs\detect\exp資料夾中:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120310I5ArAqb8m3.png
      https://ithelp.ithome.com.tw/upload/images/20231010/20120310jFjrbQnP5T.png

訓練階段(以飛機機身缺陷偵測資料集為例)

  1. 因為yolov7訓練集的存放方式剛好aircraft_fuselage_yolo資料夾中的影像擺放方式符合yolov7所需。
  2. 將飛機機身缺陷偵測資料集的內容複製到yolov7資料集的data資料夾中。
    https://ithelp.ithome.com.tw/upload/images/20231010/20120310bheZFfJ5Eq.png
  3. 複製data資料夾中的coco.yaml,貼在data資料夾中,並改名為custom.yaml。
    https://ithelp.ithome.com.tw/upload/images/20231010/20120310n25vWAa9oT.png
  4. 修改custom.taml的內容為:
    train: .\data\images\train\
    val: .\data\images\val\
    test: 
    # number of classes
    nc: 4
    # class names
    names: ['scratch','paint_peel','rust','rivet_damage']
    
  5. 進到yolov7資料夾中的cfg中的training資料夾中,並複製一個yolov7.yaml檔案,並改名為yolov7_custom.yaml。
    https://ithelp.ithome.com.tw/upload/images/20231010/20120310AGfBkjnPhB.png
  6. 打開yolov7_custom.yaml並修改nc(類別數量):
    https://ithelp.ithome.com.tw/upload/images/20231010/20120310ilSnhRWKx9.png
  7. 因為yolov7訓練會將訓練過程利用wandb顯示出來,因此需要安裝wandb:
    pip install wandb
    
  8. 執行訓練:
    python train.py --weights weights\yolov7.pt --cfg cfg\training\yolov7_custom.yaml --data data\custom.yaml --hyp .\data\hyp.scratch.custom.yaml --device cpu --batch-size 2 --epoch 300 --name yolov7-it30
    

成功執行會出現以下圖片的畫面,並開始訓練。

https://ithelp.ithome.com.tw/upload/images/20231010/201203109Ip7wNzoLf.png

  • 訓練過程的mAP以及loss變化可以進到wandb視覺化查看。

這邊同樣只演示能成功進行訓練的步驟,沒有讓訓練跑到底,後續回到宿舍後,會利用散熱效果較好的桌上型電腦進行訓練,並在最後的幾篇文章中,統一將每一代的YOLO訓練結果數據進行展示。


上一篇
[DAY 24] YOLOv6模型訓練
下一篇
[DAY 26] YOLOv8模型訓練
系列文
YOLO系列網路技術採用以及實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言